package frsf.cidisi.exercise.arql.situationCalculus.actions;

import java.util.ArrayList;

import frsf.cidisi.exercise.arql.situationCalculus.EstadoIsla;
import frsf.cidisi.faia.agent.situationcalculus.SituationCalculusAction;
import frsf.cidisi.faia.state.AgentState;
import frsf.cidisi.faia.state.EnvironmentState;

public class IrAMixocu extends SituationCalculusAction {

    @Override
    public EnvironmentState execute(AgentState ast, EnvironmentState est) {

		EstadoIsla environmentState = (EstadoIsla) est;

		ArrayList<String> ciudadesAdyacentes = new ArrayList<String>();
		ciudadesAdyacentes.addAll(environmentState.getCiudadesAdyacentesArq());

		if (ciudadesAdyacentes != null) {
			int index = ciudadesAdyacentes.indexOf(EstadoIsla.Mi);
			if (index >= 0) { /* si es adyacente */
				/** actualizamos el estado del mundo real */
				environmentState.setposicionArqueologo(EstadoIsla.Mi);
				return environmentState;
			}
		}
		/*
		 * no hay ciudades adyacentes, o Mixocu no es una de las ciudades
		 * adyacentes
		 */
		return null;
	}


    @Override
    public String toString() {
        return "irAMixocu";
    }
}

